﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using GIC.DAO.Access;
using GIC.DAO.Model;

namespace GIC.BO.Access
{
    public class GICBo
    {
        GICDao dao = new GICDao();
        public GIC.DAO.Model.EntityBase salvar(GIC.DAO.Model.EntityBase poEntity)
        {

            try
            {
                poEntity.dataOcorrencia = DateTime.Now;

                if (poEntity != null && poEntity.Id > 0)
                    return dao.Update(poEntity);
                else
                    return dao.Create(poEntity);
                
            }
            catch
            {
                //logar erro
                throw;
            }
        }

        public GIC.DAO.Model.Parametros obterParametro()
        {
            return (GIC.DAO.Model.Parametros)dao.obterParametros();
        }

        public String obterSenha()
        {
            return dao.obterSenha();
        }
        public GIC.DAO.Model.EntityBase getById(GIC.DAO.Model.EntityBase poEntity)
        {
            return dao.GetById(poEntity);
        }

        public GIC.DAO.Model.Chassi obterChassi(GIC.DAO.Model.Chassi chassi) {
            return (GIC.DAO.Model.Chassi)dao.obterChassis(chassi);
        }

        public List<GIC.DAO.Model.Chassi> listarChassiImpresso(Boolean impresso)
        { 
            return dao.listarChassiImpresso(impresso);
        }

        public void deletarChassiPorData(DateTime dataRemocao)
        {
            dao.deletarChassiPorData(dataRemocao);
        }

        public void deletarTodosChassis()
        {
            dao.deletarTodosChassis();
        }

        public void deletarSocketPorData(DateTime dataRemocao)
        {
            dao.deletarSocketPorData(dataRemocao);
        }

        public SocketHyundai recuperarUltimoSocket()
        {
            return dao.recuperarUltimoSocket();
        }

        public BodyNoReenvio recuperarSocketPendente()
        {
            return dao.recuperarSocketPendente();
        }

        public BodyNoReenvio[] atualizarSocketReenvio(String BodyNo)
        {
            return dao.atualizarSocketReenvio(BodyNo);
        }

        public void deletarSocketReenvioPendente(String BodyNo)
        {
            dao.deletarSocketReenvioPendente(BodyNo);
        }

        public List<EtiquetaChassiLeitor> listarChassiLeitor()
        {
            return dao.listarChassiLeitor();
        }

        public EtiquetaChassiLeitor recuperarEtiquetaChassiLeitorExistentePeloCodigoEtiqueta(string codEti)
        {
            return dao.recuperarEtiquetaChassiLeitorExistentePeloCodigoEtiqueta(codEti);
        }
    }
}
